import cv2
import numpy as np

img = np.zeros((480,640,3),np.uint8)

#画线坐标为（x,y） 5为线宽，4为线型锯齿（只能取-1 4 8 16）
#cv2.line(img,(10,20),(300,400),(0,0,255),5,4)  

#画矩形,-1为矩阵填充，不加不填充
cv2.rectangle(img,(10,10),(100,100),(0,0,255),-1)

#画圆，100为圆的半径
cv2.circle(img,(320,240),100,(0,0,255))
cv2.circle(img,(320,240),5,(0,0,255),-1)  #实心圆

#画椭圆，0度是从右侧计算的
#cv2.ellipse(img,(320,240),(100,50),0,0,360,(0,0,255)) #第一个0为长方形的角度
#cv2.ellipse(img,(320,240),(100,50),0,0,180,(0,0,255)) #第一个0为长方形的角度，180°为椭圆的一半，顺时针计算
#cv2.ellipse(img,(320,240),(100,50),90,0,360,(0,0,255)) #相当于椭圆从0度旋转为90度
cv2.ellipse(img,(320,240),(100,50),15,0,360,(0,0,255),-1) #通过不断调整可以画出不同的图形

#画多边形，点集通过numpy创建，类型必须为32位，且为int型
pts = np.array([(300,10),(150,100),(450,100)],np.int32) #作为一个列表把参数传递给下面
cv2.polylines(img,[pts],True,(0,0,255))  #True代表多边形闭合
cv2.fillPoly(img,[pts],(255,200,0))   #多边形填充

#绘制文本,不能显示中文！
cv2.putText(img,"wenbences",(10,400),cv2.FONT_HERSHEY_DUPLEX,2,(255,0,0))

cv2.imshow('draw',img)
cv2.waitKey(0)